/* * Copyright (c) 2005 Aetrion LLC. */ package com.flickr4java.flickr.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.Scanner; import org.junit.Ignore; import org.junit.Test; import org.scribe.model.Token; import org.scribe.model.Verifier; import com.flickr4java.flickr.FlickrException; import com.flickr4java.flickr.auth.Auth; import com.flickr4java.flickr.auth.AuthInterface; import com.flickr4java.flickr.auth.Permission; /** * @author Anthony Eden */ public class AuthInterfaceTest extends Flickr4JavaTest { @Test @Ignore // Ignored as test is interactive so would fail a build public void testAuthFlow() throws FlickrException, IOException, URISyntaxException { AuthInterface authInterface = flickr.getAuthInterface(); Token requestToken = authInterface.getRequestToken(); assertNotNull(requestToken); assertNotNull(requestToken.getToken()); assertNotNull(requestToken.getSecret()); assertTrue(requestToken.getRawResponse().contains("oauth_callback_confirmed=true")); String url = authInterface.getAuthorizationUrl(requestToken, Permission.READ); assertNotNull(url); assertEquals( String.format("http://www.flickr.com/services/oauth/authorize?oauth_token=%s&perms=%s", requestToken.getToken(), Permission.READ.toString()), url); Desktop desktop = Desktop.getDesktop(); if (!desktop.isSupported(java.awt.Desktop.Action.BROWSE)) { System.out.println("Paste this URL into your browser"); System.out.println(url); } else { URI uri = new URI(url); desktop.browse(uri); } Scanner in = new Scanner(System.in); System.out.println("Enter the given authorization code provided by Flickr auth"); System.out.print(">>"); String code = in.nextLine(); assertNotNull(code); Verifier verifier = new Verifier(code); Token accessToken = authInterface.getAccessToken(requestToken, verifier); assertNotNull(accessToken); assertNotNull(accessToken.getToken()); assertNotNull(accessToken.getSecret()); Auth checkedAuth = authInterface.checkToken(accessToken); assertNotNull(checkedAuth); assertEquals(accessToken.getToken(), checkedAuth.getToken()); assertEquals(accessToken.getSecret(), checkedAuth.getTokenSecret()); assertEquals(Permission.READ, checkedAuth.getPermission()); assertNotNull(checkedAuth.getUser()); assertNotNull(checkedAuth.getUser().getUsername()); } @Test @Ignore // Ignored as test is interactive so would fail a build public void testExchangeToken() throws FlickrException { AuthInterface authInterface = flickr.getAuthInterface(); Scanner in = new Scanner(System.in); System.out.println("Enter the Flickr auth token to exchange"); System.out.print(">>"); String flickrAuthToken = in.nextLine(); Token oAuthToken = authInterface.exchangeAuthToken(flickrAuthToken); assertNotNull(oAuthToken); assertNotNull(oAuthToken.getToken()); assertNotNull(oAuthToken.getSecret()); } }